<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Curso
 *
 * @author alexandre
 */

require_once '../Includes/VariaveisGlobais.php';

class Curso {
    private $unidadeAcademicaCod;
    private $turno;
    private $nome;
    private $modalidadeCod;
    private $cursoCod;
    
    function __construct($cursoCod = null) {
        if($cursoCod != null){
            $this->loadData($cursoCod);
        }
    }

    private function loadData($cursoCod){
        if(is_numeric($cursoCod)){
            try{
                include_once 'BaseDados.php';
                $db = new BaseDados("consulta");
                $objDb = $db->getObjDb();
                $stmt = $objDb->stmt_init();
                if($stmt->prepare("SELECT
                        `Curso`.`cursoCod` AS CURSOCOD,
                        `Curso`.`unidadeAcademicaCod` AS UNIDADEACADEMICACOD,
                        `Curso`.`modalidadeCod` AS MODALIDADECOD,
                        `Curso`.`nome` AS NOME,
                        `Curso`.`turno` AS TURNO
                        FROM `dceufg_documento`.`Curso`
                        WHERE CURSOCOD = ?")){
                    $stmt->bind_param('i',$cursoCod);
                    $stmt->execute();
                    $stmt->bind_result($CursoCod,$UnidadeAcademicaCod,$ModalidadeCod,$Nome,$Turno);
                    $stmt->fetch();
                    $stmt->close();
                    $this->setCursoCod($CursoCod);
                    $this->setunidadeAcademicaCod($UnidadeAcademicaCod);
                    $this->setModalidadeCod($ModalidadeCod);
                    $this->setNome($Nome);
                    $this->setTurno($Turno);
                    return true;
                }
            }  catch (Exception $e){
                return "Falha: , ". $e->getMessage().", \n";
            }
        }
    }
    
    public function listaCurso() {
        echo "Teste";
    }
    public function listaCursosToArray() {
        try{
            include_once 'BaseDados.php';
            $db = new BaseDados("consulta");
            $objDb = $db->getObjDb();
            $stmt = $objDb->stmt_init();
            if($stmt->prepare("SELECT 
                                    `Curso`.`cursoCod` AS CURSOCOD,
                                    `Curso`.`nome` AS CURSO,
                                    `Curso`.`unidadeAcademicaCod` AS UNIDADEACADEMICACOD,
                                        `UnidadeAcademica`.`nome` AS UNIDADEACADEMICA,
                                    `Curso`.`modalidadeCod` AS MODALIDADECOD,
                                        `Modalidade`.`nome` AS MODALIDADE,
                                    `Curso`.`turno` AS TURNO
                                FROM
                                    `dceufg_documento`.`Curso`
                                        LEFT JOIN `dceufg_documento`.`Modalidade` ON
                                                `Modalidade`.`modalidadeCod` = `Curso`.`modalidadeCod`
                                        LEFT JOIN `dceufg_documento`.`UnidadeAcademica` ON
                                                `UnidadeAcademica`.`UnidadeAcademicaCod` = `Curso`.`unidadeAcademicaCod`
                                ORDER BY
                                        UNIDADEACADEMICA ASC,
                                        CURSO ASC,
                                        MODALIDADE ASC,
                                        TURNO ASC")){
                $stmt->execute();
                $stmt->bind_result($CURSOCOD,$CURSO,$UNIDADEACADEMICACOD,$UNIDADEACADEMICA,$MODALIDADECOD,$MODALIDADE,$TURNO);
                $return = array();
                while ($stmt->fetch()) {
                    $return["CURSOCOD"][] = $CURSOCOD;
                    $return["CURSO"][] = $CURSO;
                    $return["UNIDADEACADEMICACOD"][] = $UNIDADEACADEMICACOD;
                    $return["UNIDADEACADEMICA"][] = $UNIDADEACADEMICA;
                    $return["MODALIDADECOD"][] = $MODALIDADECOD;
                    $return["MODALIDADE"][] = $MODALIDADE;
                    $return["TURNO"][] = $TURNO;
                }
                $stmt->close();
                return $return;
            }
        }  catch (Exception $e){
            return "Falha: , ". $e->getMessage().", \n";
        }
    }
        
    public function inserirCurso($nome,$turno,$unidadeAcademicaCod,$modalidadeCod){
        try{
            if(is_null($nome)){
                echo "Falha ao inserirCurso, parametro nao informado! Erro: 001";
                return FALSE;
            }else if(!is_numeric($unidadeAcademicaCod)){
                echo "Falha ao inserirCurso, parametro nao informado! Erro: 002";
                return FALSE;
            }else if(is_null($turno)){
                echo "Falha ao inserirCurso, parametro nao informado! Erro: 003";
                return FALSE;
            }else if(!is_numeric($modalidadeCod)){
                echo "Falha ao inserirCurso, parametro nao informado! Erro: 004";
                return FALSE;
            }else{
                include_once 'BaseDados.php';
                $db = new BaseDados("escrita");
                $objDb = $db->getObjDb();
                $stmt = $objDb->stmt_init();
                if($stmt->prepare("INSERT INTO `dceufg_documento`.`Curso`
                    (`unidadeAcademicaCod`,
                    `modalidadeCod`,
                    `nome`,
                    `turno`)
                    VALUES
                    (?,?,?,?)")){
                    $stmt->bind_param('iiss',$unidadeAcademicaCod,$modalidadeCod,$nome,$turno);
                    $stmt->execute();
                    $stmt->close();
                    return TRUE;
                }
            }
        }catch (Exception $e){
            return "Falha: , ". $e->getMessage().", \n";
        }
    }
    
    public function atualizarCurso($cursoCod,$nome,$turno,$unidadeAcademicaCod,$modalidadeCod){
        try{
            if(is_null($nome)){
                echo "Falha ao inserirCurso, parametro nao informado! Erro: 001";
                return FALSE;
            }else if(!is_numeric($unidadeAcademicaCod)){
                echo "Falha ao inserirCurso, parametro nao informado! Erro: 002";
                return FALSE;
            }else if(is_null($turno)){
                echo "Falha ao inserirCurso, parametro nao informado! Erro: 003";
                return FALSE;
            }else if(!is_numeric($modalidadeCod)){
                echo "Falha ao inserirCurso, parametro nao informado! Erro: 004";
                return FALSE;
            }else{
                include_once 'BaseDados.php';
                $db = new BaseDados("escrita");
                $objDb = $db->getObjDb();
                $stmt = $objDb->stmt_init();
                if($stmt->prepare("UPDATE `dceufg_documento`.`Curso`
                        SET
                        `unidadeAcademicaCod` = ?,
                        `modalidadeCod` = ?,
                        `nome` = ?,
                        `turno` = ?
                        WHERE `cursoCod` = ?")){
                    $stmt->bind_param('iissi',$unidadeAcademicaCod,$modalidadeCod,$nome,$turno,$cursoCod);
                    $stmt->execute();
                    $stmt->close();
                    return TRUE;
                }
            }
        }catch (Exception $e){
            return "Falha: , ". $e->getMessage().", \n";
        }
    }
    
    public function getUnidadeAcademicaCod() {
        return $this->unidadeAcademicaCod;
    }

    public function setunidadeAcademicaCod($unidadeAcademicaCod) {
        $this->unidadeAcademicaCod = $unidadeAcademicaCod;
    }

    public function getTurno() {
        return $this->turno;
    }

    public function setTurno($turno) {
        $this->turno = $turno;
    }

    public function getNome() {
        return $this->nome;
    }

    public function setNome($nome) {
        $this->nome = $nome;
    }

    public function getModalidadeCod() {
        return $this->modalidadeCod;
    }

    public function setModalidadeCod($modalidadeCod) {
        $this->modalidadeCod = $modalidadeCod;
    }

    public function getCursoCod() {
        return $this->cursoCod;
    }

    public function setCursoCod($cursoCod) {
        $this->cursoCod = $cursoCod;
    }    
}

?>
